namespace CLELCore.Assembly.CLELInstructions
{
	public static class CLELOpcode
	{
		public const byte NOP = 0x0;
		public const byte BREAK = 0x1;
		public const byte LDARG0 = 0x2;
		public const byte LDARG1 = 0x3;
		public const byte LDARG2 = 0x4;
		public const byte LDARG3 = 0x5;
		public const byte LDLOC0 = 0x6;
		public const byte LDLOC1 = 0x7;
		public const byte LDLOC2 = 0x8;
		public const byte LDLOC3 = 0x9;
		public const byte STLOC0 = 0xa;
		public const byte STLOC1 = 0xb;
		public const byte STLOC2 = 0xc;
		public const byte STLOC3 = 0xd;
		public const byte LDARGS = 0xe;
		public const byte LDARGAS = 0xf;
		public const byte STARGS = 0x10;
		public const byte LDLOCS = 0x11;
		public const byte LDLOCAS = 0x12;
		public const byte STLOCS = 0x13;
		public const byte LDNULL = 0x14;
		public const byte LDCI4M1 = 0x15;
		public const byte LDCI40 = 0x16;
		public const byte LDCI41 = 0x17;
		public const byte LDCI42 = 0x18;
		public const byte LDCI43 = 0x19;
		public const byte LDCI44 = 0x1a;
		public const byte LDCI45 = 0x1b;
		public const byte LDCI46 = 0x1c;
		public const byte LDCI47 = 0x1d;
		public const byte LDCI48 = 0x1e;
		public const byte LDCI4S = 0x1f;
		public const byte LDCI4 = 0x20;
		public const byte LDCI8 = 0x21;
		public const byte LDCR4 = 0x22;
		public const byte LDCR8 = 0x23;
		public const byte DUP = 0x25;
		public const byte POP = 0x26;
		public const byte JMP = 0x27;
		public const byte CALL = 0x28;
		public const byte CALLI = 0x29;
		public const byte RET = 0x2a;
		public const byte BRS = 0x2b;
		public const byte BRFALSES = 0x2c;
		public const byte BRTRUES = 0x2d;
		public const byte BEQS = 0x2e;
		public const byte BGES = 0x2f;
		public const byte BGTS = 0x30;
		public const byte BLES = 0x31;
		public const byte BLTS = 0x32;
		public const byte BNEUNS = 0x33;
		public const byte BGEUNS = 0x34;
		public const byte BGTUNS = 0x35;
		public const byte BLEUNS = 0x36;
		public const byte BLTUNS = 0x37;
		public const byte BR = 0x38;
		public const byte BRFALSE = 0x39;
		public const byte BRTRUE = 0x3a;
		public const byte BEQ = 0x3b;
		public const byte BGE = 0x3c;
		public const byte BGT = 0x3d;
		public const byte BLE = 0x3e;
		public const byte BLT = 0x3f;
		public const byte BNEUN = 0x40;
		public const byte BGEUN = 0x41;
		public const byte BGTUN = 0x42;
		public const byte BLEUN = 0x43;
		public const byte BLTUN = 0x44;
		public const byte SWITCH = 0x45;
		public const byte LDINDI1 = 0x46;
		public const byte LDINDU1 = 0x47;
		public const byte LDINDI2 = 0x48;
		public const byte LDINDU2 = 0x49;
		public const byte LDINDI4 = 0x4a;
		public const byte LDINDU4 = 0x4b;
		public const byte LDINDI8 = 0x4c;
		public const byte LDINDI = 0x4d;
		public const byte LDINDR4 = 0x4e;
		public const byte LDINDR8 = 0x4f;
		public const byte LDINDREF = 0x50;
		public const byte STINDREF = 0x51;
		public const byte STINDI1 = 0x52;
		public const byte STINDI2 = 0x53;
		public const byte STINDI4 = 0x54;
		public const byte STINDI8 = 0x55;
		public const byte STINDR4 = 0x56;
		public const byte STINDR8 = 0x57;
		public const byte ADD = 0x58;
		public const byte SUB = 0x59;
		public const byte MUL = 0x5a;
		public const byte DIV = 0x5b;
		public const byte DIVUN = 0x5c;
		public const byte REM = 0x5d;
		public const byte REMUN = 0x5e;
		public const byte AND = 0x5f;
		public const byte OR = 0x60;
		public const byte XOR = 0x61;
		public const byte SHL = 0x62;
		public const byte SHR = 0x63;
		public const byte SHRUN = 0x64;
		public const byte NEG = 0x65;
		public const byte NOT = 0x66;
		public const byte CONVI1 = 0x67;
		public const byte CONVI2 = 0x68;
		public const byte CONVI4 = 0x69;
		public const byte CONVI8 = 0x6a;
		public const byte CONVR4 = 0x6b;
		public const byte CONVR8 = 0x6c;
		public const byte CONVU4 = 0x6d;
		public const byte CONVU8 = 0x6e;
		public const byte CALLVIRT = 0x6f;
		public const byte CPOBJ = 0x70;
		public const byte LDOBJ = 0x71;
		public const byte LDSTR = 0x72;
		public const byte NEWOBJ = 0x73;
		public const byte CASTCLASS = 0x74;
		public const byte ISINST = 0x75;
		public const byte CONVRUN = 0x76;
		public const byte UNBOX = 0x79;
		public const byte THROW = 0x7a;
		public const byte LDFLD = 0x7b;
		public const byte LDFLDA = 0x7c;
		public const byte STFLD = 0x7d;
		public const byte LDSFLD = 0x7e;
		public const byte LDSFLDA = 0x7f;
		public const byte STSFLD = 0x80;
		public const byte STOBJ = 0x81;
		public const byte CONVOVFI1UN = 0x82;
		public const byte CONVOVFI2UN = 0x83;
		public const byte CONVOVFI4UN = 0x84;
		public const byte CONVOVFI8UN = 0x85;
		public const byte CONVOVFU1UN = 0x86;
		public const byte CONVOVFU2UN = 0x87;
		public const byte CONVOVFU4UN = 0x88;
		public const byte CONVOVFU8UN = 0x89;
		public const byte CONVOVFIUN = 0x8a;
		public const byte CONVOVFUUN = 0x8b;
		public const byte BOX = 0x8c;
		public const byte NEWARR = 0x8d;
		public const byte LDLEN = 0x8e;
		public const byte LDELEMA = 0x8f;
		public const byte LDELEMI1 = 0x90;
		public const byte LDELEMU1 = 0x91;
		public const byte LDELEMI2 = 0x92;
		public const byte LDELEMU2 = 0x93;
		public const byte LDELEMI4 = 0x94;
		public const byte LDELEMU4 = 0x95;
		public const byte LDELEMI8 = 0x96;
		public const byte LDELEMI = 0x97;
		public const byte LDELEMR4 = 0x98;
		public const byte LDELEMR8 = 0x99;
		public const byte LDELEMREF = 0x9a;
		public const byte STELEMI = 0x9b;
		public const byte STELEMI1 = 0x9c;
		public const byte STELEMI2 = 0x9d;
		public const byte STELEMI4 = 0x9e;
		public const byte STELEMI8 = 0x9f;
		public const byte STELEMR4 = 0xa0;
		public const byte STELEMR8 = 0xa1;
		public const byte STELEMREF = 0xa2;
		public const byte LDELEM = 0xa3;
		public const byte STELEM = 0xa4;
		public const byte UNBOXANY = 0xa5;
		public const byte CONVOVFI1 = 0xb3;
		public const byte CONVOVFU1 = 0xb4;
		public const byte CONVOVFI2 = 0xb5;
		public const byte CONVOVFU2 = 0xb6;
		public const byte CONVOVFI4 = 0xb7;
		public const byte CONVOVFU4 = 0xb8;
		public const byte CONVOVFI8 = 0xb9;
		public const byte CONVOVFU8 = 0xba;
		public const byte REFANYVAL = 0xc2;
		public const byte CKFINITE = 0xc3;
		public const byte MKREFANY = 0xc6;
		public const byte LDTOKEN = 0xd0;
		public const byte CONVU2 = 0xd1;
		public const byte CONVU1 = 0xd2;
		public const byte CONVI = 0xd3;
		public const byte CONVOVFI = 0xd4;
		public const byte CONVOVFU= 0xd5;
		public const byte ADDOVF = 0xd6;
		public const byte ADDOVFUN = 0xd7;
		public const byte MULOVF = 0xd8;
		public const byte MULOVFUN = 0xd9;
		public const byte SUBOVF = 0xda;
		public const byte SUBOVFUN = 0xdb;
		public const byte ENDFINALLY = 0xdc;
		public const byte LEAVE = 0xdd;
		public const byte LEAVES = 0xde;
		public const byte STINDI = 0xdf;
		public const byte CONVU = 0xe0;

		//Object Model
		public const byte OBJECTMODEL = 0xfe;
		public const byte ARGLIST = 0x00;
		public const byte CEQ = 0x01;
		public const byte CGT = 0x02;
		public const byte CGTUN = 0x03;
		public const byte CLT = 0x04;
		public const byte CLTUN = 0x05;
		public const byte LDFTN = 0x06;
		public const byte LDVIRTFTN = 0x07;
		public const byte LDARG = 0x09;
		public const byte LDARGA = 0x0a;
		public const byte STARG = 0x0b;
		public const byte LDLOC = 0x0c;
		public const byte LDLOCA = 0x0d;
		public const byte STLOC = 0x0e;
		public const byte LOCALLOC = 0x0f;
		public const byte ENDFILTER = 0x11;
		public const byte UNALIGNED = 0x12;
		public const byte VOLATILE = 0x13;
		public const byte TAIL = 0x14;
		public const byte INITOBJ = 0x15;
		public const byte CONSTRAINED = 0x16;
		public const byte CPBLK = 0x17;
		public const byte INITBLK = 0x18;
		public const byte RETHROW = 0x1a;
		public const byte SIZEOF = 0x1c;
		public const byte REFANYTYPE = 0x1d;
	}
}
